Over the last decade, the amounts of data and the types of information required from data have substantially increased. This change has been pervasive and universal, affecting everything from basic financial management to understanding and controlling the behavior of large networks of organizations. The use of the World Wide Web, online channels, mobile devices and the worldwide networks that support and process data now offers and creates an enormous opportunity for business analysis and insight. The requirements of businesses and individuals to access, harness and manipulate data are growing as well. Current methods of accessing data are prohibitively expensive, requiring substantial hardware infrastructure, human resources and domain expertise. Further, data is usually tied to a particular means or method of access, which often prevents ad hoc analysis and query formulation on structured or semi-structured data. These challenges require an analysis of the separate concerns of the providers of data and the users of data. This semantic divide results in the often difficult task of integrating several levels of abstraction with the conceptually simple task of storing and retrieving data.
A typical data warehouse today is a compound system, requiring expertise at the levels of application, logical and physical design. The larger the data set, the larger the overhead of managing each of these layers. Often, managing this complexity requires simplifying the interfaces between these various layers. This can lead to a loss of fidelity in the interfaces between the different constituents. For example, data providers and users often have significant domain expertise that is not easily translated into the logical, application and physical data models. There is, therefore, a need for interfaces that enable the injection of the knowledge about data content directly to the database engine, but with no changes to data schemas. Moreover, such interfaces should be designed for the purpose of domain experts rather than database experts, as the knowledge about data content specifics is usually tightly related to the application model but is quite independent from general expertise in databases.